約莫在九天前,我才有Post一篇文章,那時候的輸出樣貌並沒有很符合自己的預期,就是因為它並不是像表格一樣的對位並顯示每一個資料所屬的欄位,先附上連結讓大家可以跟拿來跟今天的文章進行比較:
[Day 10]一次堆放多筆資料的陣列還可以這樣用?!
今天,我們就針對原本的存放方式進行優化,讓程式的輸出格式更有表格的樣子,那就必須提到這個Python的模組:pandas
,只不過這個模組都必須要額外安裝才能使用 (而我因為是用PyCharm by JetBrain,就可以透過系統內建的下載輔助來把這兩個套件直接導入到原系統)
在直接將這個方法直接套用到現有的程式之前,畢竟它是模組,所以就會需要先做導入:
import pandas
#其實可以在後面加上 "as pd" 這類的方式來讓接下來的操作更加輕鬆
pandas
其實是一種資料架構的轉換模組,可以讓資料依照在Dictionary架構位置的不同,輸出近似於表格的架構,就來看看下方的程式碼:
import pandas as pd
tester_pd = pd.DataFrame([[1, 18],
[29, 43, 55]])
print(tester_pd)
"""
輸出結果如下:
0 1 2 >>>會自動產生欄與列,預設是以編號的方式呈現,且會隨字串長度改變欄位大小
0 1 18 NaN >>>針對沒有資料的區塊,會以 NaN來表示沒有資料存放
1 29 43 55.0
"""
那麼,就正式進到重頭戲:改寫前面的資料存放方式,並印出結構清晰的表格吧!話說,今天的資料架構其實不用使用到numpy餒
serial_num = ["nac149ac", "nac149xc", "mes177hc", "mes177hxc"]
graphic_card = ["NVMX130", "NVMX150", "NVGTX1070", "NVGTX1080"]
actual_effect = ["NB", "NB", "BES", "AES"]
price = [18900, 21950, 37990, 45900]
#一樣先在下方建立Dictionary架構的陣列
laptop_pd = {"Serials": serial_num,
"Graphic Cards": graphic_card,
"Performance": actual_effect,
"Price(with tax)": price}
print(pd.DataFrame(laptop_pd))
#透過將其以pd.DataFrame的架構進行輸出,讓其依據目錄名稱產生類似表格的架構
"""
輸出結果如下:
Serials Graphic Cards Performance Price(with tax)
0 nac149ac NVMX130 NB 18900
1 nac149xc NVMX150 NB 21950
2 mes177hc NVGTX1070 BES 37990
3 mes177hxc NVGTX1080 AES 45900
"""
看了真是賞心悅目